using System;
using System.Collections.Generic;
using System.Reflection;
using System.Runtime.InteropServices;

using ILRuntime.CLR.TypeSystem;
using ILRuntime.CLR.Method;
using ILRuntime.Runtime.Enviorment;
using ILRuntime.Runtime.Intepreter;
using ILRuntime.Runtime.Stack;
using ILRuntime.Reflection;
using ILRuntime.CLR.Utils;
using System.Linq;

namespace ILRuntime.Runtime.Generated
{
    unsafe class huqiang_Data_DataFieldInfo_Binding
    {
        public static void Register(ILRuntime.Runtime.Enviorment.AppDomain app)
        {
            BindingFlags flag = BindingFlags.Public | BindingFlags.Instance | BindingFlags.Static | BindingFlags.DeclaredOnly;
            MethodBase method;
            FieldInfo field;
            Type[] args;
            Type type = typeof(huqiang.Data.DataFieldInfo);
            args = new Type[]{typeof(huqiang.Data.DataInfo), typeof(System.Reflection.FieldInfo)};
            method = type.GetMethod("Analysis", flag, null, args, null);
            app.RegisterCLRMethodRedirection(method, Analysis_0);

            field = type.GetField("MemOffset", flag);
            app.RegisterCLRFieldGetter(field, get_MemOffset_0);
            app.RegisterCLRFieldSetter(field, set_MemOffset_0);
            app.RegisterCLRFieldBinding(field, CopyToStack_MemOffset_0, AssignFromStack_MemOffset_0);
            field = type.GetField("DataOffset", flag);
            app.RegisterCLRFieldGetter(field, get_DataOffset_1);
            app.RegisterCLRFieldSetter(field, set_DataOffset_1);
            app.RegisterCLRFieldBinding(field, CopyToStack_DataOffset_1, AssignFromStack_DataOffset_1);
            field = type.GetField("DataLength", flag);
            app.RegisterCLRFieldGetter(field, get_DataLength_2);
            app.RegisterCLRFieldSetter(field, set_DataLength_2);
            app.RegisterCLRFieldBinding(field, CopyToStack_DataLength_2, AssignFromStack_DataLength_2);
            field = type.GetField("ElementLength", flag);
            app.RegisterCLRFieldGetter(field, get_ElementLength_3);
            app.RegisterCLRFieldSetter(field, set_ElementLength_3);
            app.RegisterCLRFieldBinding(field, CopyToStack_ElementLength_3, AssignFromStack_ElementLength_3);
            field = type.GetField("DBType", flag);
            app.RegisterCLRFieldGetter(field, get_DBType_4);
            app.RegisterCLRFieldSetter(field, set_DBType_4);
            app.RegisterCLRFieldBinding(field, CopyToStack_DBType_4, AssignFromStack_DBType_4);
            field = type.GetField("TypeName", flag);
            app.RegisterCLRFieldGetter(field, get_TypeName_5);
            app.RegisterCLRFieldSetter(field, set_TypeName_5);
            app.RegisterCLRFieldBinding(field, CopyToStack_TypeName_5, AssignFromStack_TypeName_5);
            field = type.GetField("TypeFullName", flag);
            app.RegisterCLRFieldGetter(field, get_TypeFullName_6);
            app.RegisterCLRFieldSetter(field, set_TypeFullName_6);
            app.RegisterCLRFieldBinding(field, CopyToStack_TypeFullName_6, AssignFromStack_TypeFullName_6);
            field = type.GetField("FieldName", flag);
            app.RegisterCLRFieldGetter(field, get_FieldName_7);
            app.RegisterCLRFieldSetter(field, set_FieldName_7);
            app.RegisterCLRFieldBinding(field, CopyToStack_FieldName_7, AssignFromStack_FieldName_7);
            field = type.GetField("ChildTypeName", flag);
            app.RegisterCLRFieldGetter(field, get_ChildTypeName_8);
            app.RegisterCLRFieldSetter(field, set_ChildTypeName_8);
            app.RegisterCLRFieldBinding(field, CopyToStack_ChildTypeName_8, AssignFromStack_ChildTypeName_8);
            field = type.GetField("ChildTypeName2", flag);
            app.RegisterCLRFieldGetter(field, get_ChildTypeName2_9);
            app.RegisterCLRFieldSetter(field, set_ChildTypeName2_9);
            app.RegisterCLRFieldBinding(field, CopyToStack_ChildTypeName2_9, AssignFromStack_ChildTypeName2_9);
            field = type.GetField("ChildTypeFullName", flag);
            app.RegisterCLRFieldGetter(field, get_ChildTypeFullName_10);
            app.RegisterCLRFieldSetter(field, set_ChildTypeFullName_10);
            app.RegisterCLRFieldBinding(field, CopyToStack_ChildTypeFullName_10, AssignFromStack_ChildTypeFullName_10);
            field = type.GetField("field", flag);
            app.RegisterCLRFieldGetter(field, get_field_11);
            app.RegisterCLRFieldSetter(field, set_field_11);
            app.RegisterCLRFieldBinding(field, CopyToStack_field_11, AssignFromStack_field_11);
            field = type.GetField("OldFieldInfo", flag);
            app.RegisterCLRFieldGetter(field, get_OldFieldInfo_12);
            app.RegisterCLRFieldSetter(field, set_OldFieldInfo_12);
            app.RegisterCLRFieldBinding(field, CopyToStack_OldFieldInfo_12, AssignFromStack_OldFieldInfo_12);
            field = type.GetField("IsArray", flag);
            app.RegisterCLRFieldGetter(field, get_IsArray_13);
            app.RegisterCLRFieldSetter(field, set_IsArray_13);
            app.RegisterCLRFieldBinding(field, CopyToStack_IsArray_13, AssignFromStack_IsArray_13);
            field = type.GetField("HaveTable", flag);
            app.RegisterCLRFieldGetter(field, get_HaveTable_14);
            app.RegisterCLRFieldSetter(field, set_HaveTable_14);
            app.RegisterCLRFieldBinding(field, CopyToStack_HaveTable_14, AssignFromStack_HaveTable_14);
            field = type.GetField("Construction", flag);
            app.RegisterCLRFieldGetter(field, get_Construction_15);
            app.RegisterCLRFieldSetter(field, set_Construction_15);
            app.RegisterCLRFieldBinding(field, CopyToStack_Construction_15, AssignFromStack_Construction_15);
            field = type.GetField("Construction2", flag);
            app.RegisterCLRFieldGetter(field, get_Construction2_16);
            app.RegisterCLRFieldSetter(field, set_Construction2_16);
            app.RegisterCLRFieldBinding(field, CopyToStack_Construction2_16, AssignFromStack_Construction2_16);
            field = type.GetField("ArrayConstruction", flag);
            app.RegisterCLRFieldGetter(field, get_ArrayConstruction_17);
            app.RegisterCLRFieldSetter(field, set_ArrayConstruction_17);
            app.RegisterCLRFieldBinding(field, CopyToStack_ArrayConstruction_17, AssignFromStack_ArrayConstruction_17);
            field = type.GetField("ArrayConstruction2", flag);
            app.RegisterCLRFieldGetter(field, get_ArrayConstruction2_18);
            app.RegisterCLRFieldSetter(field, set_ArrayConstruction2_18);
            app.RegisterCLRFieldBinding(field, CopyToStack_ArrayConstruction2_18, AssignFromStack_ArrayConstruction2_18);
            field = type.GetField("typeInfo", flag);
            app.RegisterCLRFieldGetter(field, get_typeInfo_19);
            app.RegisterCLRFieldSetter(field, set_typeInfo_19);
            app.RegisterCLRFieldBinding(field, CopyToStack_typeInfo_19, AssignFromStack_typeInfo_19);


            app.RegisterCLRCreateDefaultInstance(type, () => new huqiang.Data.DataFieldInfo());
            app.RegisterCLRCreateArrayInstance(type, s => new huqiang.Data.DataFieldInfo[s]);

            args = new Type[]{};
            method = type.GetConstructor(flag, null, args, null);
            app.RegisterCLRMethodRedirection(method, Ctor_0);

        }


        static StackObject* Analysis_0(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
        {
            ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
            StackObject* ptr_of_this_method;
            StackObject* __ret = ILIntepreter.Minus(__esp, 3);

            ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
            System.Reflection.FieldInfo @fi = (System.Reflection.FieldInfo)typeof(System.Reflection.FieldInfo).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack), (CLR.Utils.Extensions.TypeFlags)0);
            __intp.Free(ptr_of_this_method);

            ptr_of_this_method = ILIntepreter.Minus(__esp, 2);
            huqiang.Data.DataInfo @analysis = (huqiang.Data.DataInfo)typeof(huqiang.Data.DataInfo).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack), (CLR.Utils.Extensions.TypeFlags)0);
            __intp.Free(ptr_of_this_method);

            ptr_of_this_method = ILIntepreter.Minus(__esp, 3);
            huqiang.Data.DataFieldInfo instance_of_this_method = (huqiang.Data.DataFieldInfo)typeof(huqiang.Data.DataFieldInfo).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack), (CLR.Utils.Extensions.TypeFlags)0);
            __intp.Free(ptr_of_this_method);

            instance_of_this_method.Analysis(@analysis, @fi);

            return __ret;
        }


        static object get_MemOffset_0(ref object o)
        {
            return ((huqiang.Data.DataFieldInfo)o).MemOffset;
        }

        static StackObject* CopyToStack_MemOffset_0(ref object o, ILIntepreter __intp, StackObject* __ret, IList<object> __mStack)
        {
            var result_of_this_method = ((huqiang.Data.DataFieldInfo)o).MemOffset;
            __ret->ObjectType = ObjectTypes.Integer;
            __ret->Value = result_of_this_method;
            return __ret + 1;
        }

        static void set_MemOffset_0(ref object o, object v)
        {
            ((huqiang.Data.DataFieldInfo)o).MemOffset = (System.Int16)v;
        }

        static StackObject* AssignFromStack_MemOffset_0(ref object o, ILIntepreter __intp, StackObject* ptr_of_this_method, IList<object> __mStack)
        {
            ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
            System.Int16 @MemOffset = (short)ptr_of_this_method->Value;
            ((huqiang.Data.DataFieldInfo)o).MemOffset = @MemOffset;
            return ptr_of_this_method;
        }

        static object get_DataOffset_1(ref object o)
        {
            return ((huqiang.Data.DataFieldInfo)o).DataOffset;
        }

        static StackObject* CopyToStack_DataOffset_1(ref object o, ILIntepreter __intp, StackObject* __ret, IList<object> __mStack)
        {
            var result_of_this_method = ((huqiang.Data.DataFieldInfo)o).DataOffset;
            __ret->ObjectType = ObjectTypes.Integer;
            __ret->Value = result_of_this_method;
            return __ret + 1;
        }

        static void set_DataOffset_1(ref object o, object v)
        {
            ((huqiang.Data.DataFieldInfo)o).DataOffset = (System.Int16)v;
        }

        static StackObject* AssignFromStack_DataOffset_1(ref object o, ILIntepreter __intp, StackObject* ptr_of_this_method, IList<object> __mStack)
        {
            ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
            System.Int16 @DataOffset = (short)ptr_of_this_method->Value;
            ((huqiang.Data.DataFieldInfo)o).DataOffset = @DataOffset;
            return ptr_of_this_method;
        }

        static object get_DataLength_2(ref object o)
        {
            return ((huqiang.Data.DataFieldInfo)o).DataLength;
        }

        static StackObject* CopyToStack_DataLength_2(ref object o, ILIntepreter __intp, StackObject* __ret, IList<object> __mStack)
        {
            var result_of_this_method = ((huqiang.Data.DataFieldInfo)o).DataLength;
            __ret->ObjectType = ObjectTypes.Integer;
            __ret->Value = result_of_this_method;
            return __ret + 1;
        }

        static void set_DataLength_2(ref object o, object v)
        {
            ((huqiang.Data.DataFieldInfo)o).DataLength = (System.Int16)v;
        }

        static StackObject* AssignFromStack_DataLength_2(ref object o, ILIntepreter __intp, StackObject* ptr_of_this_method, IList<object> __mStack)
        {
            ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
            System.Int16 @DataLength = (short)ptr_of_this_method->Value;
            ((huqiang.Data.DataFieldInfo)o).DataLength = @DataLength;
            return ptr_of_this_method;
        }

        static object get_ElementLength_3(ref object o)
        {
            return ((huqiang.Data.DataFieldInfo)o).ElementLength;
        }

        static StackObject* CopyToStack_ElementLength_3(ref object o, ILIntepreter __intp, StackObject* __ret, IList<object> __mStack)
        {
            var result_of_this_method = ((huqiang.Data.DataFieldInfo)o).ElementLength;
            __ret->ObjectType = ObjectTypes.Integer;
            __ret->Value = result_of_this_method;
            return __ret + 1;
        }

        static void set_ElementLength_3(ref object o, object v)
        {
            ((huqiang.Data.DataFieldInfo)o).ElementLength = (System.Int16)v;
        }

        static StackObject* AssignFromStack_ElementLength_3(ref object o, ILIntepreter __intp, StackObject* ptr_of_this_method, IList<object> __mStack)
        {
            ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
            System.Int16 @ElementLength = (short)ptr_of_this_method->Value;
            ((huqiang.Data.DataFieldInfo)o).ElementLength = @ElementLength;
            return ptr_of_this_method;
        }

        static object get_DBType_4(ref object o)
        {
            return ((huqiang.Data.DataFieldInfo)o).DBType;
        }

        static StackObject* CopyToStack_DBType_4(ref object o, ILIntepreter __intp, StackObject* __ret, IList<object> __mStack)
        {
            var result_of_this_method = ((huqiang.Data.DataFieldInfo)o).DBType;
            __ret->ObjectType = ObjectTypes.Integer;
            __ret->Value = result_of_this_method;
            return __ret + 1;
        }

        static void set_DBType_4(ref object o, object v)
        {
            ((huqiang.Data.DataFieldInfo)o).DBType = (System.Int16)v;
        }

        static StackObject* AssignFromStack_DBType_4(ref object o, ILIntepreter __intp, StackObject* ptr_of_this_method, IList<object> __mStack)
        {
            ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
            System.Int16 @DBType = (short)ptr_of_this_method->Value;
            ((huqiang.Data.DataFieldInfo)o).DBType = @DBType;
            return ptr_of_this_method;
        }

        static object get_TypeName_5(ref object o)
        {
            return ((huqiang.Data.DataFieldInfo)o).TypeName;
        }

        static StackObject* CopyToStack_TypeName_5(ref object o, ILIntepreter __intp, StackObject* __ret, IList<object> __mStack)
        {
            var result_of_this_method = ((huqiang.Data.DataFieldInfo)o).TypeName;
            return ILIntepreter.PushObject(__ret, __mStack, result_of_this_method);
        }

        static void set_TypeName_5(ref object o, object v)
        {
            ((huqiang.Data.DataFieldInfo)o).TypeName = (System.String)v;
        }

        static StackObject* AssignFromStack_TypeName_5(ref object o, ILIntepreter __intp, StackObject* ptr_of_this_method, IList<object> __mStack)
        {
            ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
            System.String @TypeName = (System.String)typeof(System.String).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack), (CLR.Utils.Extensions.TypeFlags)0);
            ((huqiang.Data.DataFieldInfo)o).TypeName = @TypeName;
            return ptr_of_this_method;
        }

        static object get_TypeFullName_6(ref object o)
        {
            return ((huqiang.Data.DataFieldInfo)o).TypeFullName;
        }

        static StackObject* CopyToStack_TypeFullName_6(ref object o, ILIntepreter __intp, StackObject* __ret, IList<object> __mStack)
        {
            var result_of_this_method = ((huqiang.Data.DataFieldInfo)o).TypeFullName;
            return ILIntepreter.PushObject(__ret, __mStack, result_of_this_method);
        }

        static void set_TypeFullName_6(ref object o, object v)
        {
            ((huqiang.Data.DataFieldInfo)o).TypeFullName = (System.String)v;
        }

        static StackObject* AssignFromStack_TypeFullName_6(ref object o, ILIntepreter __intp, StackObject* ptr_of_this_method, IList<object> __mStack)
        {
            ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
            System.String @TypeFullName = (System.String)typeof(System.String).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack), (CLR.Utils.Extensions.TypeFlags)0);
            ((huqiang.Data.DataFieldInfo)o).TypeFullName = @TypeFullName;
            return ptr_of_this_method;
        }

        static object get_FieldName_7(ref object o)
        {
            return ((huqiang.Data.DataFieldInfo)o).FieldName;
        }

        static StackObject* CopyToStack_FieldName_7(ref object o, ILIntepreter __intp, StackObject* __ret, IList<object> __mStack)
        {
            var result_of_this_method = ((huqiang.Data.DataFieldInfo)o).FieldName;
            return ILIntepreter.PushObject(__ret, __mStack, result_of_this_method);
        }

        static void set_FieldName_7(ref object o, object v)
        {
            ((huqiang.Data.DataFieldInfo)o).FieldName = (System.String)v;
        }

        static StackObject* AssignFromStack_FieldName_7(ref object o, ILIntepreter __intp, StackObject* ptr_of_this_method, IList<object> __mStack)
        {
            ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
            System.String @FieldName = (System.String)typeof(System.String).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack), (CLR.Utils.Extensions.TypeFlags)0);
            ((huqiang.Data.DataFieldInfo)o).FieldName = @FieldName;
            return ptr_of_this_method;
        }

        static object get_ChildTypeName_8(ref object o)
        {
            return ((huqiang.Data.DataFieldInfo)o).ChildTypeName;
        }

        static StackObject* CopyToStack_ChildTypeName_8(ref object o, ILIntepreter __intp, StackObject* __ret, IList<object> __mStack)
        {
            var result_of_this_method = ((huqiang.Data.DataFieldInfo)o).ChildTypeName;
            return ILIntepreter.PushObject(__ret, __mStack, result_of_this_method);
        }

        static void set_ChildTypeName_8(ref object o, object v)
        {
            ((huqiang.Data.DataFieldInfo)o).ChildTypeName = (System.String)v;
        }

        static StackObject* AssignFromStack_ChildTypeName_8(ref object o, ILIntepreter __intp, StackObject* ptr_of_this_method, IList<object> __mStack)
        {
            ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
            System.String @ChildTypeName = (System.String)typeof(System.String).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack), (CLR.Utils.Extensions.TypeFlags)0);
            ((huqiang.Data.DataFieldInfo)o).ChildTypeName = @ChildTypeName;
            return ptr_of_this_method;
        }

        static object get_ChildTypeName2_9(ref object o)
        {
            return ((huqiang.Data.DataFieldInfo)o).ChildTypeName2;
        }

        static StackObject* CopyToStack_ChildTypeName2_9(ref object o, ILIntepreter __intp, StackObject* __ret, IList<object> __mStack)
        {
            var result_of_this_method = ((huqiang.Data.DataFieldInfo)o).ChildTypeName2;
            return ILIntepreter.PushObject(__ret, __mStack, result_of_this_method);
        }

        static void set_ChildTypeName2_9(ref object o, object v)
        {
            ((huqiang.Data.DataFieldInfo)o).ChildTypeName2 = (System.String)v;
        }

        static StackObject* AssignFromStack_ChildTypeName2_9(ref object o, ILIntepreter __intp, StackObject* ptr_of_this_method, IList<object> __mStack)
        {
            ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
            System.String @ChildTypeName2 = (System.String)typeof(System.String).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack), (CLR.Utils.Extensions.TypeFlags)0);
            ((huqiang.Data.DataFieldInfo)o).ChildTypeName2 = @ChildTypeName2;
            return ptr_of_this_method;
        }

        static object get_ChildTypeFullName_10(ref object o)
        {
            return ((huqiang.Data.DataFieldInfo)o).ChildTypeFullName;
        }

        static StackObject* CopyToStack_ChildTypeFullName_10(ref object o, ILIntepreter __intp, StackObject* __ret, IList<object> __mStack)
        {
            var result_of_this_method = ((huqiang.Data.DataFieldInfo)o).ChildTypeFullName;
            return ILIntepreter.PushObject(__ret, __mStack, result_of_this_method);
        }

        static void set_ChildTypeFullName_10(ref object o, object v)
        {
            ((huqiang.Data.DataFieldInfo)o).ChildTypeFullName = (System.String)v;
        }

        static StackObject* AssignFromStack_ChildTypeFullName_10(ref object o, ILIntepreter __intp, StackObject* ptr_of_this_method, IList<object> __mStack)
        {
            ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
            System.String @ChildTypeFullName = (System.String)typeof(System.String).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack), (CLR.Utils.Extensions.TypeFlags)0);
            ((huqiang.Data.DataFieldInfo)o).ChildTypeFullName = @ChildTypeFullName;
            return ptr_of_this_method;
        }

        static object get_field_11(ref object o)
        {
            return ((huqiang.Data.DataFieldInfo)o).field;
        }

        static StackObject* CopyToStack_field_11(ref object o, ILIntepreter __intp, StackObject* __ret, IList<object> __mStack)
        {
            var result_of_this_method = ((huqiang.Data.DataFieldInfo)o).field;
            object obj_result_of_this_method = result_of_this_method;
            if(obj_result_of_this_method is CrossBindingAdaptorType)
            {    
                return ILIntepreter.PushObject(__ret, __mStack, ((CrossBindingAdaptorType)obj_result_of_this_method).ILInstance);
            }
            return ILIntepreter.PushObject(__ret, __mStack, result_of_this_method);
        }

        static void set_field_11(ref object o, object v)
        {
            ((huqiang.Data.DataFieldInfo)o).field = (System.Reflection.FieldInfo)v;
        }

        static StackObject* AssignFromStack_field_11(ref object o, ILIntepreter __intp, StackObject* ptr_of_this_method, IList<object> __mStack)
        {
            ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
            System.Reflection.FieldInfo @field = (System.Reflection.FieldInfo)typeof(System.Reflection.FieldInfo).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack), (CLR.Utils.Extensions.TypeFlags)0);
            ((huqiang.Data.DataFieldInfo)o).field = @field;
            return ptr_of_this_method;
        }

        static object get_OldFieldInfo_12(ref object o)
        {
            return ((huqiang.Data.DataFieldInfo)o).OldFieldInfo;
        }

        static StackObject* CopyToStack_OldFieldInfo_12(ref object o, ILIntepreter __intp, StackObject* __ret, IList<object> __mStack)
        {
            var result_of_this_method = ((huqiang.Data.DataFieldInfo)o).OldFieldInfo;
            object obj_result_of_this_method = result_of_this_method;
            if(obj_result_of_this_method is CrossBindingAdaptorType)
            {    
                return ILIntepreter.PushObject(__ret, __mStack, ((CrossBindingAdaptorType)obj_result_of_this_method).ILInstance);
            }
            return ILIntepreter.PushObject(__ret, __mStack, result_of_this_method);
        }

        static void set_OldFieldInfo_12(ref object o, object v)
        {
            ((huqiang.Data.DataFieldInfo)o).OldFieldInfo = (huqiang.Data.DataFieldInfo)v;
        }

        static StackObject* AssignFromStack_OldFieldInfo_12(ref object o, ILIntepreter __intp, StackObject* ptr_of_this_method, IList<object> __mStack)
        {
            ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
            huqiang.Data.DataFieldInfo @OldFieldInfo = (huqiang.Data.DataFieldInfo)typeof(huqiang.Data.DataFieldInfo).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack), (CLR.Utils.Extensions.TypeFlags)0);
            ((huqiang.Data.DataFieldInfo)o).OldFieldInfo = @OldFieldInfo;
            return ptr_of_this_method;
        }

        static object get_IsArray_13(ref object o)
        {
            return ((huqiang.Data.DataFieldInfo)o).IsArray;
        }

        static StackObject* CopyToStack_IsArray_13(ref object o, ILIntepreter __intp, StackObject* __ret, IList<object> __mStack)
        {
            var result_of_this_method = ((huqiang.Data.DataFieldInfo)o).IsArray;
            __ret->ObjectType = ObjectTypes.Integer;
            __ret->Value = result_of_this_method ? 1 : 0;
            return __ret + 1;
        }

        static void set_IsArray_13(ref object o, object v)
        {
            ((huqiang.Data.DataFieldInfo)o).IsArray = (System.Boolean)v;
        }

        static StackObject* AssignFromStack_IsArray_13(ref object o, ILIntepreter __intp, StackObject* ptr_of_this_method, IList<object> __mStack)
        {
            ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
            System.Boolean @IsArray = ptr_of_this_method->Value == 1;
            ((huqiang.Data.DataFieldInfo)o).IsArray = @IsArray;
            return ptr_of_this_method;
        }

        static object get_HaveTable_14(ref object o)
        {
            return ((huqiang.Data.DataFieldInfo)o).HaveTable;
        }

        static StackObject* CopyToStack_HaveTable_14(ref object o, ILIntepreter __intp, StackObject* __ret, IList<object> __mStack)
        {
            var result_of_this_method = ((huqiang.Data.DataFieldInfo)o).HaveTable;
            __ret->ObjectType = ObjectTypes.Integer;
            __ret->Value = result_of_this_method ? 1 : 0;
            return __ret + 1;
        }

        static void set_HaveTable_14(ref object o, object v)
        {
            ((huqiang.Data.DataFieldInfo)o).HaveTable = (System.Boolean)v;
        }

        static StackObject* AssignFromStack_HaveTable_14(ref object o, ILIntepreter __intp, StackObject* ptr_of_this_method, IList<object> __mStack)
        {
            ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
            System.Boolean @HaveTable = ptr_of_this_method->Value == 1;
            ((huqiang.Data.DataFieldInfo)o).HaveTable = @HaveTable;
            return ptr_of_this_method;
        }

        static object get_Construction_15(ref object o)
        {
            return ((huqiang.Data.DataFieldInfo)o).Construction;
        }

        static StackObject* CopyToStack_Construction_15(ref object o, ILIntepreter __intp, StackObject* __ret, IList<object> __mStack)
        {
            var result_of_this_method = ((huqiang.Data.DataFieldInfo)o).Construction;
            return ILIntepreter.PushObject(__ret, __mStack, result_of_this_method);
        }

        static void set_Construction_15(ref object o, object v)
        {
            ((huqiang.Data.DataFieldInfo)o).Construction = (System.Func<System.Object>)v;
        }

        static StackObject* AssignFromStack_Construction_15(ref object o, ILIntepreter __intp, StackObject* ptr_of_this_method, IList<object> __mStack)
        {
            ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
            System.Func<System.Object> @Construction = (System.Func<System.Object>)typeof(System.Func<System.Object>).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack), (CLR.Utils.Extensions.TypeFlags)8);
            ((huqiang.Data.DataFieldInfo)o).Construction = @Construction;
            return ptr_of_this_method;
        }

        static object get_Construction2_16(ref object o)
        {
            return ((huqiang.Data.DataFieldInfo)o).Construction2;
        }

        static StackObject* CopyToStack_Construction2_16(ref object o, ILIntepreter __intp, StackObject* __ret, IList<object> __mStack)
        {
            var result_of_this_method = ((huqiang.Data.DataFieldInfo)o).Construction2;
            return ILIntepreter.PushObject(__ret, __mStack, result_of_this_method);
        }

        static void set_Construction2_16(ref object o, object v)
        {
            ((huqiang.Data.DataFieldInfo)o).Construction2 = (System.Func<System.Object>)v;
        }

        static StackObject* AssignFromStack_Construction2_16(ref object o, ILIntepreter __intp, StackObject* ptr_of_this_method, IList<object> __mStack)
        {
            ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
            System.Func<System.Object> @Construction2 = (System.Func<System.Object>)typeof(System.Func<System.Object>).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack), (CLR.Utils.Extensions.TypeFlags)8);
            ((huqiang.Data.DataFieldInfo)o).Construction2 = @Construction2;
            return ptr_of_this_method;
        }

        static object get_ArrayConstruction_17(ref object o)
        {
            return ((huqiang.Data.DataFieldInfo)o).ArrayConstruction;
        }

        static StackObject* CopyToStack_ArrayConstruction_17(ref object o, ILIntepreter __intp, StackObject* __ret, IList<object> __mStack)
        {
            var result_of_this_method = ((huqiang.Data.DataFieldInfo)o).ArrayConstruction;
            return ILIntepreter.PushObject(__ret, __mStack, result_of_this_method);
        }

        static void set_ArrayConstruction_17(ref object o, object v)
        {
            ((huqiang.Data.DataFieldInfo)o).ArrayConstruction = (System.Func<System.Int32, System.Object>)v;
        }

        static StackObject* AssignFromStack_ArrayConstruction_17(ref object o, ILIntepreter __intp, StackObject* ptr_of_this_method, IList<object> __mStack)
        {
            ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
            System.Func<System.Int32, System.Object> @ArrayConstruction = (System.Func<System.Int32, System.Object>)typeof(System.Func<System.Int32, System.Object>).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack), (CLR.Utils.Extensions.TypeFlags)8);
            ((huqiang.Data.DataFieldInfo)o).ArrayConstruction = @ArrayConstruction;
            return ptr_of_this_method;
        }

        static object get_ArrayConstruction2_18(ref object o)
        {
            return ((huqiang.Data.DataFieldInfo)o).ArrayConstruction2;
        }

        static StackObject* CopyToStack_ArrayConstruction2_18(ref object o, ILIntepreter __intp, StackObject* __ret, IList<object> __mStack)
        {
            var result_of_this_method = ((huqiang.Data.DataFieldInfo)o).ArrayConstruction2;
            return ILIntepreter.PushObject(__ret, __mStack, result_of_this_method);
        }

        static void set_ArrayConstruction2_18(ref object o, object v)
        {
            ((huqiang.Data.DataFieldInfo)o).ArrayConstruction2 = (System.Func<System.Int32, System.Object>)v;
        }

        static StackObject* AssignFromStack_ArrayConstruction2_18(ref object o, ILIntepreter __intp, StackObject* ptr_of_this_method, IList<object> __mStack)
        {
            ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
            System.Func<System.Int32, System.Object> @ArrayConstruction2 = (System.Func<System.Int32, System.Object>)typeof(System.Func<System.Int32, System.Object>).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack), (CLR.Utils.Extensions.TypeFlags)8);
            ((huqiang.Data.DataFieldInfo)o).ArrayConstruction2 = @ArrayConstruction2;
            return ptr_of_this_method;
        }

        static object get_typeInfo_19(ref object o)
        {
            return ((huqiang.Data.DataFieldInfo)o).typeInfo;
        }

        static StackObject* CopyToStack_typeInfo_19(ref object o, ILIntepreter __intp, StackObject* __ret, IList<object> __mStack)
        {
            var result_of_this_method = ((huqiang.Data.DataFieldInfo)o).typeInfo;
            object obj_result_of_this_method = result_of_this_method;
            if(obj_result_of_this_method is CrossBindingAdaptorType)
            {    
                return ILIntepreter.PushObject(__ret, __mStack, ((CrossBindingAdaptorType)obj_result_of_this_method).ILInstance);
            }
            return ILIntepreter.PushObject(__ret, __mStack, result_of_this_method);
        }

        static void set_typeInfo_19(ref object o, object v)
        {
            ((huqiang.Data.DataFieldInfo)o).typeInfo = (huqiang.Data.DataTypeInfo)v;
        }

        static StackObject* AssignFromStack_typeInfo_19(ref object o, ILIntepreter __intp, StackObject* ptr_of_this_method, IList<object> __mStack)
        {
            ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
            huqiang.Data.DataTypeInfo @typeInfo = (huqiang.Data.DataTypeInfo)typeof(huqiang.Data.DataTypeInfo).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack), (CLR.Utils.Extensions.TypeFlags)0);
            ((huqiang.Data.DataFieldInfo)o).typeInfo = @typeInfo;
            return ptr_of_this_method;
        }



        static StackObject* Ctor_0(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
        {
            ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
            StackObject* __ret = ILIntepreter.Minus(__esp, 0);

            var result_of_this_method = new huqiang.Data.DataFieldInfo();

            return ILIntepreter.PushObject(__ret, __mStack, result_of_this_method);
        }


    }
}
